Traditional network appliances are hardware computing devices that are configured to perform a specific task or tasks on data packets that they receive. These network devices may be configured to intercept messages sent between two computing devices, and to operate on those messages before sending them on. Examples of such network appliances include a firewall, a wide area network (WAN) optimizer, switches, and so forth.
Network switches are networking devices that link together computing devices. A switch receives packets from devices connected to a network, and transmits or drops the packets based on routing or switching rules. Virtual switches are versions of switches that are implemented completely or partially in software. The greater the number of different network traffic flows on a network, the slower the switch or switches on that network may perform. For physical switches, slow switching caused by a large number of unique flows can be addressed by adding additional physical resources. However, such a solution is not typically available for virtual switches. Accordingly, many virtual switches experience a modest or significant slow down in switching speeds as the number of unique network traffic flows increases.